// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = (vm) => {
	// 初始化请求配置
	uni.$u.http.setConfig((config) => {
			// 服务端URL
			config.baseURL = 'http://localhost:8080/nyyyds-api';
			return config
	})
	
	// 请求拦截
	uni.$u.http.interceptors.request.use((config) => {
		// 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		config.data = config.data || {}
			
		// 如果存在token，则追加到header里面
		if(vm.$store.state.user.token) {
			config.header.token = vm.$store.state.user.token
		}
		
		// GET请求，添加时间戳，防止缓存
		if(config.method === 'GET'){
			config.data = {
				_t: new Date().getTime()
			}
		}
		
	  return config 
	}, config => { 
	  return Promise.reject(config)
	})
	
	// 响应拦截
	uni.$u.http.interceptors.response.use((response) => {
		const res = response.data
		
		if (res.code === 0){
			return res
		}
		
		if (res.code === 401) {
			vm.$store.commit('user/removeToken')
			
			// 跳转到登录页
			uni.navigateTo({
			  url: '/pages/login/index'
			});
			return
		}else {			
			uni.$u.toast(res.msg)
			
			return Promise.reject(response)
		}
		
	}, (response) => { 
		return Promise.reject(response)
	})
}